/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
function moveZeroes(nums) {
  let j = 0; // 记录下一个非零元素应该放置的位置

  // 第一次遍历：将所有非零元素移到前面
  for (let i = 0; i < nums.length; i++) {
    if (nums[i] !== 0) {
      nums[j] = nums[i];
      j++;
    }
  }

  // 第二次遍历：将剩余位置填充为0
  for (let i = j; i < nums.length; i++) {
    nums[i] = 0;
  }
}
